home *** CD-ROM | disk | FTP | other *** search
/ PC Gamer (Italian) 36 / PC Gamer IT CD 36 2-2.iso / VIGDEMO / data1.cab / Assets / scripts / rifleburst.e < prev    next >
Text File  |  1998-09-21  |  6KB  |  763 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.  
  272.  
  273.  
  274.  
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  
  285.  
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.  
  339.  
  340.  
  341.  
  342.  
  343.  
  344.  
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.  
  404.  
  405.  
  406.  
  407.  
  408.  
  409.  
  410.  
  411.  
  412.  
  413.  
  414.  
  415.  
  416.  
  417.  
  418.  
  419.  
  420.  
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446. int Initialize(string type)
  447. {
  448.     global int state ;
  449.     global real gBurstTime = 0.1;
  450.     global real repeatTime = 1.0;
  451.     global int maxBullet = 200;
  452.     global int gBulletCount = 20;
  453.     global int gBurstCount = 3;
  454.     global int hitValue = 1;
  455.     global int gGravity = 0;
  456.     global int gClipSize = 30;
  457.     global int gSequenceCount;
  458.     global int gNumPellets = 1;
  459.     global real gRange = 200.0;
  460.     global real gRatio    = 0.1;
  461.     global int gStartSound = 7;
  462.     global int gProgressSound = -1;
  463.     global int gEndSound = 19;
  464.     global int gReloadSound = -1;
  465.     global int mPrivileged;
  466.     global real gMass = 2.0;
  467.         
  468.     Reset("dumy");
  469.     return 0;
  470.  
  471. }
  472.  
  473. int SetBulletCount(int count)
  474. {
  475.     gBulletCount = count;
  476. }
  477.  
  478. int startsound(string soundname)
  479. {
  480.     gStartSound = GetSoundIndex(soundname);
  481.  
  482. }
  483.  
  484. int endsound(string soundname)
  485. {
  486.     gEndSound = GetSoundIndex(soundname);
  487.  
  488. }
  489.  
  490. int progresssound(string soundname)
  491. {
  492.     gProgressSound = GetSoundIndex(soundname);
  493.  
  494. }
  495.  
  496. int reloadsound(string soundname)
  497. {
  498.     gReloadSound = GetSoundIndex(soundname);
  499.  
  500. }
  501.  
  502. int burstcount(string str)
  503. {
  504.     gBurstCount = Str2Int(str);
  505. }
  506.  
  507. int Reset(string dummy)
  508. {
  509.     state = 0;
  510.     SetCollidableProperties(thisObject,gGravity,0);
  511.     SetStyle(thisObject,2);
  512.  
  513.     gBulletCount = gClipSize;
  514.     mPrivileged = 0;
  515.     SetScale(thisObject,2.0);
  516.     
  517.     wakeupTime = -1.0;
  518.     gSequenceCount = 0;
  519.     return 0;
  520. }
  521.  
  522. int clipsize(string count)
  523. {
  524.     gClipSize = Str2Int(count);
  525.     gBulletCount = gClipSize;
  526. }
  527.  
  528. int GetMaxAmmo(string dummy)
  529. {
  530.     ReturnValue(thisObject, gClipSize);
  531. }
  532.  
  533. int addammo(string count)
  534. {
  535.     int value = Str2Int(count);
  536.     gBulletCount = gBulletCount + value;
  537. }
  538.  
  539. int gravity(string flag)
  540. {
  541.     int value;
  542.     value = Str2Int(flag);
  543.  
  544.     gGravity = value;
  545.     SetCollidableProperties(thisObject,gGravity,0);
  546. }
  547.  
  548. int damage(string str)
  549. {
  550.     hitValue = Str2Int(str);
  551.     return 0;
  552. }
  553.  
  554. int repeattime(string str)
  555. {
  556.     repeatTime = Str2Real(str);
  557.     return 0;
  558. }
  559.  
  560. int bursttime(string str)
  561. {
  562.     gBurstTime = Str2Real(str);
  563.     return 0;
  564. }
  565.  
  566. int Colliders(string dummy) 
  567. {
  568.     
  569.     map::iterator ix;
  570.     map objInList;
  571.     int value;
  572.  
  573.     objInList = Collisions(thisObject,0,1,0);
  574.  
  575.     for (ix = begin(objInList) ;ix != end(objInList); ++ix) 
  576.     {
  577.         value = AddObjectTo(first(dereference(ix)),thisObject);
  578.         if (value != 0)
  579.         {
  580.             PlaySound(thisObject,35);
  581.             SetScale(thisObject,1.0);
  582.             break;
  583.         }
  584.     }
  585.     
  586.     return 0;
  587. }
  588.  
  589.  
  590. int Launch(string dummy)
  591. {
  592.     SetScale(thisObject,2.0);
  593. }
  594.  
  595. int Drop(string dummy)
  596. {
  597.     int returnBullet;
  598.     Launch(dummy);
  599.     SetCollidableProperties(thisObject,gGravity,0);
  600.     SetStyle(thisObject,2);
  601.     PlaySound(thisObject,38);
  602.     ReturnValue(thisObject,0);
  603.  
  604.  
  605.  
  606.  
  607.  
  608.  
  609.  
  610.  
  611.  
  612.  
  613.  
  614.  
  615. }
  616.  
  617. int reload(string count)
  618. {
  619.     int add;
  620.     add  = Str2Int(count);
  621.     if (add > 0)
  622.     {
  623.         PlaySound(thisObject,gReloadSound);
  624.         gBulletCount += add;
  625.     }
  626. }
  627.  
  628. int AmmoCount(string dum)
  629. {
  630.     ReturnValue(thisObject,gBulletCount);
  631. }
  632.  
  633. int Draw(string ammoCount)
  634. {
  635.     gBulletCount = Str2Int(ammoCount);
  636. }
  637.  
  638. int Pickup(string dummy)
  639. {
  640.     mPrivileged = 0;
  641.     ReturnValue(thisObject,gBulletCount);
  642.     gBulletCount = 0;    
  643. }
  644.  
  645. int Holster(string dummy)
  646. {
  647.     ReturnValue(thisObject,gBulletCount);
  648.     gBulletCount = 0;        
  649. }
  650.  
  651. int HitTheTarget()
  652. {
  653.     Animate(thisObject,1,"fire");    
  654.  
  655.     LaunchBeam(thisObject,0,1.0,3.0,"tracer",0.25,0.75);
  656.  
  657.     LaunchMuzzleFlash(thisObject);
  658.     ParentFire(thisObject);
  659.     if (GetHit(thisObject) == 1)
  660.     {
  661.         HitTarget(thisObject,hitValue);    
  662.     }
  663.     else
  664.     {
  665.         MakeDecal(thisObject,1,0);
  666.         PlaySound(thisObject,gEndSound,1);
  667.     }
  668. }
  669.  
  670. int GetFireTime(string dummy)
  671. {
  672.     ReturnValueReal(thisObject,gBurstTime);
  673.     return 0;
  674. }
  675.  
  676. int SetBulletCount(int count)
  677. {
  678.     gBulletCount = count;
  679. }
  680.  
  681. int FireFulfill(int notused)
  682. {
  683.     state = 2;
  684.     
  685.     TimedEvent(0);
  686.     PlaySound(thisObject,gStartSound);
  687. }
  688.  
  689. int Fire(int flag)
  690. {
  691.     real time ;
  692.     int retValue = 0;
  693.     time = GetTime(thisObject);
  694.  
  695.     if (UnlimitedAmmo(thisObject) == 1)
  696.         gBulletCount = gClipSize;
  697.     if (state == 0) 
  698.     {
  699.  
  700.         {
  701.             if (gBulletCount >= gBurstCount)
  702.             {
  703.                 mPrivileged = 1;
  704.                 state = 2;
  705.                 FireSaveInfo(thisObject,hitValue,gBulletCount,gMass);
  706.                 FireCommand(thisObject);
  707.  
  708.                 state = 2;
  709.  
  710.                 retValue = 1;    
  711.             }
  712.             else
  713.             {
  714.                 ParentReloadCommand(thisObject);
  715.             }
  716.         }
  717.     }
  718.     ReturnValue(thisObject,retValue);    
  719.  
  720.     return 0;
  721. }
  722.  
  723. int SetBulletCount(int count)
  724. {
  725.     gBulletCount = count;
  726. }
  727.  
  728. int TimedEvent(int input)
  729. {
  730.     real time ;
  731.     time = GetTime(thisObject);
  732.  
  733.     if (UnlimitedAmmo(thisObject) == 1)
  734.         gBulletCount = gClipSize;
  735.     if (state == 2)
  736.     {
  737.         if (gSequenceCount < gBurstCount)
  738.         {
  739.  
  740.             gBulletCount--;
  741.             gSequenceCount++;
  742.             if (mPrivileged == 1)
  743.                 FireSaveInfo(thisObject,hitValue,gBulletCount,gMass);
  744.             HitTheTarget();
  745.             wakeupTime = time + gBurstTime;
  746.         }
  747.         else
  748.         {
  749.             state = 5;
  750.             gSequenceCount = 0;
  751.             wakeupTime = time + repeatTime;
  752.         }
  753.     }
  754.     else if (state == 5)
  755.     {
  756.         state = 0;
  757.         Animate(thisObject,0,"fire");
  758.         wakeupTime = -1.0;
  759.     }
  760.     return 0;
  761. }
  762.  
  763.